Nunanik allanik niueqateqarneq


Nunanik allanik niueqateqarneq
IEX2PROD_raw <- 
  statgl_url("IEX2PROD", lang = language) %>% 
  statgl_fetch(
    branch = px_all(),
    quarter = 1:4,
    time = px_top(1),
    .col_code = TRUE
  ) %>% 
  as_tibble()

IEX2PROD <- 
  IEX2PROD_raw %>% 
  mutate(branch = branch %>% fct_inorder()) %>% 
  filter(branch %>% str_detect("-[:digit:]")) %>% 
  mutate(
    quarter = quarter %>% fct_inorder(),
    branch = branch %>% str_remove_all("[:digit:]|[:punct:]") %>% trimws(),
    branch = branch %>% fct_inorder()
    ) %>% 
  filter(value != "Na") %>% 
  spread(quarter, value)

IEX2PROD %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = IEX2PROD[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
kvartal 1
2025
Avammut tunisat katillugit 1.131.177.864
Uumasunit pisut nunalerinermi tunisassiat katillugit 333.055
Suliffissuarni nioqqutissiat katillugit 242.748.518
Aalisagaq peqquk qaleruaqanngitsullu piariigaanngitsut asiunaveersagaanngitsullu katillugt 887.140.384
Ikummatissat punnersaat innaallagiarlu katillugit 3.884
Nioqqutissat allat katillugit 952.023


Se Statistikbankens tabel: IEX2PROD

IEXANV_raw <- 
  statgl_url("IEXANV", lang = language) %>%
  statgl_fetch(
    quarter   = 1:4,
    time      = px_top(1),
    "end-use" = px_all(),
    .col_code = TRUE
  ) %>% 
  as_tibble()

IEXANV <- 
  IEXANV_raw %>% 
  filter(`end-use` %>% word(1) %>% str_detect("-")) %>% 
  mutate(
    `end-use` = `end-use` %>% str_remove_all("[:digit:]|[:punct:]") %>% trimws(),
    `end-use` = `end-use` %>% fct_inorder()
  ) %>% 
  filter(value != "Na") %>% 
  spread(quarter, value)
  
IEXANV %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = IEXANV[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
kvartal 1
2025
Nunatsinnut tunisat katillugit 1.038.031.773
Nioqqutissat nunalerinermi naatsiivilerinermilu katillugit 6.251.108
Sanaartornermi nioqqutissat katillugit 99.814.508
Inuussutissarsiutit allat katillugit 295.785.980
Ikummatissat punnerusaat innaallagiarlu katillugit 6.129.173
Maskiinat tunisassiornermilu atortut allat katillugit 125.491.912
Assartuutit 39.439.109
Nioqqutissat inuinnarnit toqqaannaq atugassiat 458.651.099
Nioqqutissat allani taaneqanngitsut katillugit 6.468.884


Se Statistikbankens tabel: IEXANV

IEXBALMND_raw <- 
  statgl_url("IEXBALMND", lang = language) %>%
  statgl_fetch(
    month       = px_all(),
    transaction = px_all(),
    time        = px_top(1),
    .col_code   = TRUE
  ) %>% 
  as_tibble()

IEXBALMND <- 
  IEXBALMND_raw %>% 
  mutate(
    month = month %>% str_to_sentence(),
    month = month %>% fct_inorder(),
    transaction = transaction %>% fct_inorder()
  ) %>% 
  filter(value != "Na") %>% 
  spread(transaction, value)

IEXBALMND %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = IEXBALMND[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
Niueqatigiinnermi oqimaaqatigiissut Avammut tunisat Nunatsinnut tunisat
2025
Ukioq tamaat 93.146 1.131.178 1.038.032
Januaari 206.278 560.236 353.958
Februaari -51.759 271.901 323.660
Marsi -61.373 299.041 360.414


Se Statistikbankens tabel: IEXBALMND

IEXSITC_raw <- 
  statgl_url("IEXSITC", lang = language) %>% 
  statgl_fetch(
    processing  = px_all(),
    transaction = 1:2,
    time        = px_top(2),
    .col_code   = TRUE
  ) %>% 
  as_tibble() %>% 
  filter(time != max(time))

IEXSITC <- 
  IEXSITC_raw %>% 
  filter(processing %>% str_detect("I alt|i alt|Katillugit|katillugit|total|Total")) %>%
  mutate(
      processing = processing %>% 
      str_remove_all("[:digit:]|\\-") %>% 
      trimws() %>% 
      fct_inorder(),
      value = value |> prettyNum(big.mark = ".", decimal.mark = ",")
    ) %>% 
  spread(transaction, value) %>% 
  mutate_if(is.numeric, ~replace(., is.na(.), 0)) %>%
  gather(var, val, -c(processing, time)) %>% 
  mutate(var = var %>% str_to_title()) %>% 
  spread(var, val)


IEXSITC %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table(replace_0s = TRUE) %>% 
  pack_rows(index = table(paste0("Kroner, ", IEXSITC %>% pull(time)))) %>% 
  row_spec(1, bold = TRUE)
Avammut Tunisat Nunatsinnut Tunisat
Kroner, 2024
Katillugit 5.211.739.808 6.791.831.863
Inuussutissat uumasullu katillugit 5.078.795.984 1.110.445.735
Imigassat tupallu katillugit 53.167 332.528.803
Atortussiassat nerineqarsinnaanngitsut (ikummatissaq minillugu), katillugit 13.290.752 48.393.511
Ikummatissat punnerusaallu katillugit 140.918 1.455.812.153
Uumasunit naatitanillu uuliat, orsut voksilu katillugit 3.280 6.376.383
Akuutissat taakkunanngalu nioqqutissiat katillugit 3.107.821 410.718.020
Maskiinat assartuutillu, katillugit 76.196.923 1.596.547.140
Nioqqutissiat suliareriikkat allani ilaanngitsut katillugit 24.564.032 654.057.798
Nioqqutissat aningaasanillu nuussinerit assigiinngitsut katillugit 4.547.935 43.907.560


Se Statistikbankens tabel: IEXSITC


Sidst opdateret: 22. juni 2025
LS0tDQpwYXJhbXM6DQogIGxhbmc6ICJkYSINCm91dHB1dDoNCiAgc3RhdGdsOjpzdGF0Z2xfcmVwb3J0Og0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCmVkaXRvcl9vcHRpb25zOiANCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGNvbnNvbGUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KCWVjaG8gICAgPSBUUlVFLA0KCW1lc3NhZ2UgPSBGQUxTRSwNCgl3YXJuaW5nID0gRkFMU0UsDQoJY2xhc3Mub3V0cHV0ID0gInNjcm9sbC0xMDAiDQopDQoNCnsNCmxpYnJhcnkoInRpZHl2ZXJzZSIpDQpsaWJyYXJ5KCJzdGF0Z2wiKQ0KbGlicmFyeSgia2FibGVFeHRyYSIpDQpsaWJyYXJ5KCJsdWJyaWRhdGUiKQ0KbGlicmFyeSgieWFtbCIpDQp9DQoNCnsgIA0KbGFuZ3VhZ2UgIDwtIHBhcmFtcyRsYW5nDQpvcHRpb24gICAgPC0gcGFzdGUwKCI/bGFuZz0iLCBsYW5ndWFnZSwgIiZzZWxlY3QiKQ0KbG9nbyAgICAgIDwtIHBhc3RlMChnZXR3ZCgpLCIvYWRkL2xvZ28uZ2lmIikNCnR4dCAgICAgICA8LSByZWFkX3lhbWwocGFzdGUwKGdldHdkKCksICIvYWRkL3R4dC55bWwiKSwgZmlsZUVuY29kaW5nID0gIklTTy04ODU5LTEiKQ0Kc291cmNlICAgIDwtIHR4dCRzb3VyY2VbbGFuZ3VhZ2VdICU+JSB1bmxpc3QoKQ0KfQ0KDQp4YXJpbmdhbkV4dHJhOjp1c2VfY2xpcGJvYXJkKCkNCg0KYGBgDQoNCmBgYHtjc3MsIGVjaG8gPSBGQUxTRX0NCg0KLmFjY29yZGlvbiB7DQogIGJhY2tncm91bmQtY29sb3I6ICM5MTk5MDA7DQogIGNvbG9yOiB3aGl0ZTsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBwYWRkaW5nOiAxOHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgYm9yZGVyOiBub25lOw0KICBib3JkZXItcmFkaXVzOiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTVweDsNCiAgdHJhbnNpdGlvbjogMC40czsNCn0NCg0KLmFjdGl2ZSwgLmFjY29yZGlvbjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICNmOTcyNDI7DQp9DQoNCi5hY2NvcmRpb246YWZ0ZXIgew0KICBjb250ZW50OiAnXDAwMkInOw0KICBjb2xvcjogIzc3NzsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogIGZsb2F0OiByaWdodDsNCiAgbWFyZ2luLWxlZnQ6IDVweDsNCn0NCg0KLmFjdGl2ZTphZnRlciB7DQogIGNvbnRlbnQ6ICJcMjIxMiI7DQp9DQoNCi5wYW5lbCB7DQogIHBhZGRpbmc6IDBweCA1cHggMHB4IDVweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7DQogIG1heC1oZWlnaHQ6IDA7DQogIG92ZXJmbG93OiBoaWRkZW47DQogIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4ycyBlYXNlLW91dDsNCn0NCg0KZGV0YWlscyB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQpkZXRhaWxzID4gc3VtbWFyeSB7DQogIHBhZGRpbmc6IDRweCAxMnB4Ow0KICB3aWR0aDogMTAwJTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2Y5OTsNCiAgYm9yZGVyOiBzb2xpZDsNCiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGZvbnQtc2l6ZTogMTVweDsNCiAgY29sb3I6IHdoaXRlOw0KfQ0KDQpkZXRhaWxzW29wZW5dID4gc3VtbWFyeSB7DQogIGJhY2tncm91bmQtY29sb3I6ICNmYWE0MWE7DQp9DQoNCg0KLnRpdGxlIHsNCiAgY29sb3I6ICMxYjU0NjM7DQogIGZvbnQtc2l6ZTogMzZweDsNCn0NCg0KDQoucGVyc29uZXIgew0KICBib3gtc2hhZG93OiAzcHggM3B4IDRweCBibGFjazsNCiAgYmFja2dyb3VuZDogIzAwNDQ1OTsNCiAgcGFkZGluZy1yaWdodDogMTVweDsNCiAgcGFkZGluZy1sZWZ0OiAxNnB4Ow0KICBwYWRkaW5nLXRvcDogMC4xcHg7DQogIHBhZGRpbmctYm90dG9tOiAxcHg7DQogIGZvbnQtc2l6ZTogMTFweDsNCiAgY29sb3I6IHdoaXRlOw0KICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KfQ0KDQouw7hrb25vbWkgew0KICBib3gtc2hhZG93OiAzcHggM3B4IDRweCBibGFjazsNCiAgYmFja2dyb3VuZDogIzAwN0Y5OTsNCiAgcGFkZGluZy1yaWdodDogMTVweDsNCiAgcGFkZGluZy1sZWZ0OiAxNnB4Ow0KICBwYWRkaW5nLXRvcDogMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMC4xcHg7DQogIGZvbnQtc2l6ZTogMTFweDsNCiAgY29sb3I6IHdoaXRlOw0KICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KfQ0KDQoudHbDpnJnw6VlbmRlIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICNmYWE0MWE7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDAuMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLmNvbnRhaW5lciB7DQogIHdpZHRoOiBpbmhlcml0Ow0KfQ0KDQouc2Nyb2xsLTEwMCB7DQogIG1heC1oZWlnaHQ6IDEwMDsNCiAgb3ZlcmZsb3cteTogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsNCn0NCg0KDQpwcmUgew0KICBtYXgtaGVpZ2h0OiAzMDBweDsNCiAgb3ZlcmZsb3cteTogYXV0bzsNCn0NCg0KcHJlW2NsYXNzXSB7DQogIG1heC1oZWlnaHQ6IDMwMHB4Ow0KfQ0KDQpgYGANCg0KPGJyPg0KPGJyPg0KDQo8Y2VudGVyPg0KDQotLS0NCiANCiMgW2ByIHR4dCRJRSR0aXRsZVtsYW5ndWFnZV1gXXsudGl0bGV9DQogDQotLS0NCjwvY2VudGVyPg0KDQo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4gYHIgdHh0JElFJHRpdGxlW2xhbmd1YWdlXWAgPC9zdW1tYXJ5PiANCjxicj4NCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAxOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIklFWDJQUk9EIiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCmBgYHtyIElFWDJQUk9EfQ0KDQpJRVgyUFJPRF9yYXcgPC0gDQogIHN0YXRnbF91cmwoIklFWDJQUk9EIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUgDQogIHN0YXRnbF9mZXRjaCgNCiAgICBicmFuY2ggPSBweF9hbGwoKSwNCiAgICBxdWFydGVyID0gMTo0LA0KICAgIHRpbWUgPSBweF90b3AoMSksDQogICAgLmNvbF9jb2RlID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkNCg0KSUVYMlBST0QgPC0gDQogIElFWDJQUk9EX3JhdyAlPiUgDQogIG11dGF0ZShicmFuY2ggPSBicmFuY2ggJT4lIGZjdF9pbm9yZGVyKCkpICU+JSANCiAgZmlsdGVyKGJyYW5jaCAlPiUgc3RyX2RldGVjdCgiLVs6ZGlnaXQ6XSIpKSAlPiUgDQogIG11dGF0ZSgNCiAgICBxdWFydGVyID0gcXVhcnRlciAlPiUgZmN0X2lub3JkZXIoKSwNCiAgICBicmFuY2ggPSBicmFuY2ggJT4lIHN0cl9yZW1vdmVfYWxsKCJbOmRpZ2l0Ol18WzpwdW5jdDpdIikgJT4lIHRyaW13cygpLA0KICAgIGJyYW5jaCA9IGJyYW5jaCAlPiUgZmN0X2lub3JkZXIoKQ0KICAgICkgJT4lIA0KICBmaWx0ZXIodmFsdWUgIT0gIk5hIikgJT4lIA0KICBzcHJlYWQocXVhcnRlciwgdmFsdWUpDQoNCklFWDJQUk9EICU+JSANCiAgc2VsZWN0KC10aW1lKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gSUVYMlBST0RbWyJ0aW1lIl1dICU+JSB0YWJsZSgpKSAlPiUgDQogIHJvd19zcGVjKDEsIGJvbGQgPSBUUlVFKQ0KDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiSUVYMlBST0QiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxLzI2YzE1NDA2LWRiN2EtNGM5NS05ZDBmLWQzZDYzYTkzZGEzZSIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQoNCg0KDQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMjogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJJRVhBTlYiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBJRVhBTlZdfQ0KDQpJRVhBTlZfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJJRVhBTlYiLCBsYW5nID0gbGFuZ3VhZ2UpICU+JQ0KICBzdGF0Z2xfZmV0Y2goDQogICAgcXVhcnRlciAgID0gMTo0LA0KICAgIHRpbWUgICAgICA9IHB4X3RvcCgxKSwNCiAgICAiZW5kLXVzZSIgPSBweF9hbGwoKSwNCiAgICAuY29sX2NvZGUgPSBUUlVFDQogICkgJT4lIA0KICBhc190aWJibGUoKQ0KDQpJRVhBTlYgPC0gDQogIElFWEFOVl9yYXcgJT4lIA0KICBmaWx0ZXIoYGVuZC11c2VgICU+JSB3b3JkKDEpICU+JSBzdHJfZGV0ZWN0KCItIikpICU+JSANCiAgbXV0YXRlKA0KICAgIGBlbmQtdXNlYCA9IGBlbmQtdXNlYCAlPiUgc3RyX3JlbW92ZV9hbGwoIls6ZGlnaXQ6XXxbOnB1bmN0Ol0iKSAlPiUgdHJpbXdzKCksDQogICAgYGVuZC11c2VgID0gYGVuZC11c2VgICU+JSBmY3RfaW5vcmRlcigpDQogICkgJT4lIA0KICBmaWx0ZXIodmFsdWUgIT0gIk5hIikgJT4lIA0KICBzcHJlYWQocXVhcnRlciwgdmFsdWUpDQogIA0KSUVYQU5WICU+JSANCiAgc2VsZWN0KC10aW1lKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gSUVYQU5WW1sidGltZSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCiAgDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIklFWEFOViIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvYjBiOTUyZDEtNmVhOS00MTNlLWE5YTMtZDNjN2ZhNWFlNjEzIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KDQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMzogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJJRVhCQUxNTkQiLCBsYW5nID0gbGFuZ3VhZ2UpKSR0aXRsZSlgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIElFWEJBTE1ORH0NCg0KSUVYQkFMTU5EX3JhdyA8LSANCiAgc3RhdGdsX3VybCgiSUVYQkFMTU5EIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUNCiAgc3RhdGdsX2ZldGNoKA0KICAgIG1vbnRoICAgICAgID0gcHhfYWxsKCksDQogICAgdHJhbnNhY3Rpb24gPSBweF9hbGwoKSwNCiAgICB0aW1lICAgICAgICA9IHB4X3RvcCgxKSwNCiAgICAuY29sX2NvZGUgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCklFWEJBTE1ORCA8LSANCiAgSUVYQkFMTU5EX3JhdyAlPiUgDQogIG11dGF0ZSgNCiAgICBtb250aCA9IG1vbnRoICU+JSBzdHJfdG9fc2VudGVuY2UoKSwNCiAgICBtb250aCA9IG1vbnRoICU+JSBmY3RfaW5vcmRlcigpLA0KICAgIHRyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb24gJT4lIGZjdF9pbm9yZGVyKCkNCiAgKSAlPiUgDQogIGZpbHRlcih2YWx1ZSAhPSAiTmEiKSAlPiUgDQogIHNwcmVhZCh0cmFuc2FjdGlvbiwgdmFsdWUpDQoNCklFWEJBTE1ORCAlPiUgDQogIHNlbGVjdCgtdGltZSkgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUoKSAlPiUgDQogIHBhY2tfcm93cyhpbmRleCA9IElFWEJBTE1ORFtbInRpbWUiXV0gJT4lIHRhYmxlKCkpICU+JSANCiAgcm93X3NwZWMoMSwgYm9sZCA9IFRSVUUpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiSUVYQkFMTU5EIilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS9hOGYxNjE4Ni03NGIzLTQyNGQtYWVmZi0xNjdhNjJkZTQ5ZWYiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KDQoNCg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgcGFzdGUwKCIqKlRhYmVsIDQ6ICoqIiwgc3RhdGdsX21ldGEoc3RhdGdsX3VybCgiSUVYU0lUQyIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIElFWFNJVEN9DQoNCklFWFNJVENfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJJRVhTSVRDIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUgDQogIHN0YXRnbF9mZXRjaCgNCiAgICBwcm9jZXNzaW5nICA9IHB4X2FsbCgpLA0KICAgIHRyYW5zYWN0aW9uID0gMToyLA0KICAgIHRpbWUgICAgICAgID0gcHhfdG9wKDIpLA0KICAgIC5jb2xfY29kZSAgID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkgJT4lIA0KICBmaWx0ZXIodGltZSAhPSBtYXgodGltZSkpDQoNCklFWFNJVEMgPC0gDQogIElFWFNJVENfcmF3ICU+JSANCiAgZmlsdGVyKHByb2Nlc3NpbmcgJT4lIHN0cl9kZXRlY3QoIkkgYWx0fGkgYWx0fEthdGlsbHVnaXR8a2F0aWxsdWdpdHx0b3RhbHxUb3RhbCIpKSAlPiUNCiAgbXV0YXRlKA0KICAgICAgcHJvY2Vzc2luZyA9IHByb2Nlc3NpbmcgJT4lIA0KICAgICAgc3RyX3JlbW92ZV9hbGwoIls6ZGlnaXQ6XXxcXC0iKSAlPiUgDQogICAgICB0cmltd3MoKSAlPiUgDQogICAgICBmY3RfaW5vcmRlcigpLA0KICAgICAgdmFsdWUgPSB2YWx1ZSB8PiBwcmV0dHlOdW0oYmlnLm1hcmsgPSAiLiIsIGRlY2ltYWwubWFyayA9ICIsIikNCiAgICApICU+JSANCiAgc3ByZWFkKHRyYW5zYWN0aW9uLCB2YWx1ZSkgJT4lIA0KICBtdXRhdGVfaWYoaXMubnVtZXJpYywgfnJlcGxhY2UoLiwgaXMubmEoLiksIDApKSAlPiUNCiAgZ2F0aGVyKHZhciwgdmFsLCAtYyhwcm9jZXNzaW5nLCB0aW1lKSkgJT4lIA0KICBtdXRhdGUodmFyID0gdmFyICU+JSBzdHJfdG9fdGl0bGUoKSkgJT4lIA0KICBzcHJlYWQodmFyLCB2YWwpDQoNCg0KSUVYU0lUQyAlPiUgDQogIHNlbGVjdCgtdGltZSkgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUocmVwbGFjZV8wcyA9IFRSVUUpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gdGFibGUocGFzdGUwKCJLcm9uZXIsICIsIElFWFNJVEMgJT4lIHB1bGwodGltZSkpKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCiAgDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIklFWFNJVEMiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxL2NlYjliNGEwLTNlZmQtNGQ2YS04NWQ1LTFhMjZmYWIxMmY4MyIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQo8L2RldGFpbHM+DQoNCg0KDQo8aHIgc3R5bGU9ImJvcmRlcjoxcHggcmlkZ2UgbGlnaHRncmF5Ij4gPC9ocj4NCjxjZW50ZXI+IDxzcGFuIHN0eWxlPSdjb2xvcjojRDNEM0QzOyBmb250LXNpemU6OTAlOyc+IGByIHBhc3RlKHR4dCR1cGRhdGVbbGFuZ3VhZ2VdLCBmb3JtYXQoU3lzLkRhdGUoKSwgIiVkLiAlQiAlWSIpKWAgPC9zcGFuPiA8L2NlbnRlcj4NCg0KDQo8c2NyaXB0Pg0KdmFyIGFjYyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImFjY29yZGlvbiIpOw0KdmFyIGk7DQoNCmZvciAoaSA9IDA7IGkgPCBhY2MubGVuZ3RoOyBpKyspIHsNCiAgYWNjW2ldLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7DQogICAgdGhpcy5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiKTsNCiAgICB2YXIgcGFuZWwgPSB0aGlzLm5leHRFbGVtZW50U2libGluZzsNCiAgICBpZiAocGFuZWwuc3R5bGUubWF4SGVpZ2h0KSB7DQogICAgICBwYW5lbC5zdHlsZS5tYXhIZWlnaHQgPSBudWxsOw0KICAgIH0gZWxzZSB7DQogICAgICBwYW5lbC5zdHlsZS5tYXhIZWlnaHQgPSBwYW5lbC5zY3JvbGxIZWlnaHQgKyAicHgiOw0KICAgIH0gDQogIH0pOw0KfQ0KPC9zY3JpcHQ+DQoNCg0K